Adaptive choice for context source request

ABSTRACT

Method and service node ( 10 ) for providing a service in a communication network ( 1 ). The service node ( 10 ) is arranged to evaluate a request comprising an expression (A), a function of multiple elements. The elements (eventually) relate to data originating from context sources (B, D, E) available in the communication network ( 1 ). Each of the one or more context sources (B, D, E) has an associated context source weight for a query by the service. The context source (E) for which evaluation of the expression has a lowest expression evaluation weight is determined, based on the associated context source weights, and this context source (E) is interrogated first.

TECHNICAL FIELD

The present invention relates to a method for providing a service in acommunication network, in which the service comprises evaluating arequest comprising an expression, the expression being a function of aplurality of elements, each element relating to data originating fromone or more context sources available in the communication network.

In a further aspect, the present invention relates to a service node fora communication network.

BACKGROUND

Currently when a context source provides information to a requestor in acommunication network, this is e.g. done by request based mechanisms.After a request has been done every context source needs to beinterrogated for the actual information at that moment. The programmerof the service application determines in which order the context sourcesare interrogated.

SUMMARY

The present invention seeks to provide an improvement in networkperformance for a communication network providing a service involvingmultiple context sources.

According to the present invention, a method according to the preambledefined above is provided, in which each of the one or more contextsources has an associated context source weight for a query by theservice, the method comprising determining the context source from theone or more context sources for which evaluation of the expression has alowest expression evaluation weight, based on the associated contextsource weights, and interrogating first the context source determined tohave the lowest expression evaluation weight. The function is e.g. aboolean function, which only provides a positive evaluation of therequest when all elements are true. By first requesting the contextsource having the lowest expression evaluation weight, the other contextsources need not be interrogated when the first one provides a falseresult of the request. Due to not further querying of other contextsources in the expression, lower total cost, and lower network andcontext source load, etc. are obtained. Furthermore, the method allowsto automatically update the order of interrogating the context sourcesdue to changing circumstances during operation of the service. Again,this will provide a more flexible execution of the present method withmore efficiency.

In a further embodiment, the expression comprises one or moreintermediate expressions, and the method further comprises iterativelydetermining the weight of evaluating intermediate expressions, until allelements relate only to data originating from the one or more contextsources. In this manner, the lowest weight intermediate expressiontowards each of the context sources may be determined for eachexpression until the expression elements comprise only context sources,at which point the context source to be interrogated first has beendetermined.

The method may further comprise taking into account the distribution ofpossible values of the data originating from the one or more contextsources when determining the lowest expression evaluation weight. Suchinformation is usually known beforehand, can be estimated, or can bederived from historical data, and may result in better efficiency.

In a further embodiment, the context source having the lowest associatedcontext source weight is determined to have the lowest expressionevaluation weight. This embodiment may not provide the overall lowestexpression evaluation weight, but resources are saved for evaluating theentire expression.

The associated context source weight is, in a further embodiment, afunction of network resource use, actual monetary cost, or a combinationof network resource use and actual monetary cost.

The data of each of the plurality of context sources is in a furtherembodiment stored in an associated proxy server, which is directlyaccessible for the service. Use of a proxy server or proxy mayfacilitate the possibilities of making data available to applications inthe network, and provide a quicker access to these data.

In a further embodiment the expression is a boolean function, the datafrom each of the context sources being true or false. This allows aquick evaluation of the expression by the service. In an alternativeembodiment, the data from the context sources is a numeric value, andthe expression comprises a function of the values of the contextsources. This allows easier interfacing with the context sources, ascontext sources may already be present or available in the network, butonly provide numerical values.

The data from each of the context sources may in a further embodimentalso have the value unknown. The method may further be arranged to dealwith a value of unknown returned by a context source, e.g. depending onthe kind of expression which is evaluated (e.g. a boolean AND or ORfunction). In an even further embodiment, the method further comprisesto use a latest obtained value for the respective context source valueif the value is unknown. In both embodiments, efficiency related to theservice (e.g. the use of network resources and monetary cost) is furtherimproved.

In an even further embodiment, a child expression is used by multipleparent expressions, and the weight for evaluating the child expressionis shared between the multiple parent expressions when the associatedrequests are received simultaneously. This provides a furtheropportunity to improve the efficiency for the service in the network.

In a further aspect, the present invention relates to a service node fora communication network providing a service in the communicationnetwork, in which the service node is arranged to receive and evaluate arequest, the request comprising an expression being a function of aplurality of elements, each element relating to data originating fromone or more context sources, the service node, in operation, beingconnectable to the one or more context sources, in which the servicenode is further arranged to execute the method according to anyembodiment of the present invention. For that, the service node mayfurther comprise a rule interpreter for evaluating the expression. Also,the service node may further comprise a context information collectorfor interfacing with the one or more context sources. The contextinformation collector may in an even further embodiment comprise acontext source proxy for each of the one or more context sources, forstoring data associated with each respective context source.

With the optimizations described in this invention together the requiredresources for a service depending on different context sources will bereduced to the minimum without loosing the required performance in termsof latency and cost (in terms of network resources and monetary cost).

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be discussed in more detail below, using anumber of exemplary embodiments, with reference to the attacheddrawings, in which

FIG. 1 shows a schematic diagram of a network allowing the evaluation ofan expression;

FIG. 2 shows a schematic diagram of a network implementing an embodimentof the present invention;

FIG. 3 shows a schematic diagram of a network evaluating an expressionaccording to an embodiment of the present invention;

FIG. 4 shows a schematic diagram of a network, in which evaluation of anexpression is performed according to a further embodiment of the presentinvention;

FIG. 5 shows a schematic diagram of a network, in which evaluation of anexpression is performed according to a further embodiment of the presentinvention; and

FIG. 6 shows a schematic diagram of a further possible scenario in acommunication network using an embodiment of the present invention.

DETAILED DESCRIPTION

The present invention may be applied and implemented in any type ofcommunication network structure, such as a cellular telecommunicationnetwork. The various method embodiments described below may beimplemented in one of existing network hardware components or in aseparate service node which interfaces with other nodes and/orcomponents in the network 1 as required.

The basic concept of the present invention is illustrated in the networkstructure representation shown in FIG. 1. Only the elements needed tounderstand the invention are shown here. An service or application mayuse a network 1 to obtain the evaluation of an expression A depending ona plurality of elements. Actual context sources B, D, and E (providingdata related to context information) may be located outside of thenetwork 1, but are able to communicate with the network 1. E.g., thenetwork 1 may comprise context source proxies (or context source proxyservers) B′, D′, and E′, providing context source information in thenetwork 1.

The network 1 shown in FIG. 1 may represent any kind of servicedepending on data from context sources B, D and E with certain relationsor expressions A and C between them. A request from an application orservice depends on the evaluation of an expression A. In the situationshown in FIG. 1, the expression A depends on two elements, i.e. anotherexpression C (intermediate expression) and the value of context sourceB. The expression C depends on the value of context sources D, E asillustrated in FIG. 1.

Other expressions may also be used in the embodiments of the presentinvention. Although the expression A illustrated above comprises onefurther expression (expression C), it is also envisageable that nointermediate expressions are present, i.e. the expression A to beevaluated depends directly on information (data) from one or morecontext sources B, D, E. Also, more complex expressions may be necessarywhen implementing certain network services, e.g. comprising multipleintermediate expressions.

A possible implementation of the present invention in atelecommunication network is shown in FIG. 2. Again, the context sourcesB, D and E are shown as being positioned outside the network 1. Arequestor 11 (e.g. an application being executed in a mobile telephoneoperated by a user) may send a request to a service node 10, whichservice node 10 may be part of the network 1, or, as indicated in FIG.2, is connected to the network 1. The service node 10 comprises acontext information collector 15 connected to the context sources B, D,E through the network 1, and a rule interpreter 16 connected to thecontext information collector 15 and the requestor 11. The network 1forms the transport facility of information coming from the physicalcontext sources B, D, E. The physical context sources are positionedoutside the service node 10, but are represented within the service node10 by their respective proxies B′, D′, E′. The functionalities indicatedin FIG. 2 may be implemented as software programs loaded on a processingdevice which is known as such, e.g. in the form of the service node 10,or another already existing processing device in the network 1. Thecontext source proxies B′, D′ and E′ may be implemented as part of thecontext information collector 15.

A request (indicated by Request (Rule A) in FIG. 2) is posted at therule interpreter 16 by the requestor 11. In this case, the requestconcerns the evaluation of an expression Rule A, which is, as shown inrelation to FIG. 1, based on the three context sources B, D and E. Therelation between rules and context sources is already outlined inrelation to FIG. 1 above. The requestor 11 is notified by the ruleinterpreter 16 when rule A evaluates to true.

A further aspect playing a role in the embodiments of the presentinvention is the cost or weight of obtaining information from thecontext sources B, D, E. The cost of a request illustrates what theactual cost is of a value request for a particular context source B, D,E. The cost is represented by an associated context source weight valuedetermined in terms of network resources (=N) and monetary cost=(

):

weight=f(N,

).

In the embodiment of FIG. 1, the cost or weight are given for theexample that the cost(B)=8; cost (D)=10; cost(E)=1. So in order toevaluate the expression A in total, i.e. by interrogating all contextsources B, D, and E for information, the expression evaluation weightfor the requestor is 19, as indicated in FIG. 1.

Given the structure of the network in which the actual context sourcesB, D, E, form the end points, a second (naïve) implementation will justrequest the first context source proxy in the network (which is B′, seeFout! Verwijzingsbron niet gevonden. FIG. 2) as first. When assumingthat the context source information is a boolean value (‘false’ or‘true’) and that the probability of occurrence of these boolean valuesis 50%, the cost for first requesting context source B, and onlyproceeding with interrogating the next context source when the value istrue, then the total cost for expression A will lower to 13.25 given thecost for each context source B, D, E in FIG. 1 (cost A=cost B+50% ofcost C=cost B+50% (cost D+50% cost E)).

However, a further improvement is possible according to an embodiment ofthe present invention when evaluating first the context source B, D, E(or context source proxy B′, D′, E′) for which a lowest expressionevaluation weight is determined. This is indicated schematically in theschematic network diagram of FIG. 3. In Fout! Verwijzingsbron nietgevonden. FIG. 3 it is shown that the depending on the cost of requesttowards each context source proxy B′, D′, E′, it is determined thatcontext source proxy E′ will get the first request until it becomestrue. This means that neither context source proxy B′ nor D′ will berequested, which will save (network) resources. In this case, thecontext source E has the lowest expression evaluation weight: theelements of expression A evaluate to a cost of 8 for context source B,and 6 for expressions C (of which the elements evaluate to costs of 10(context source D) and 1 (context source E), respectively). Byiteratively determining the weight of evaluating (intermediate)expressions A and C until all elements of the farthest intermediateexpression relate directly to information from the context sources (Dand E in this case for the intermediate expression C), the contextsource with the lowest expression evaluation weight may be found.

The total cost for evaluating expression A (assuming the same 50%distribution of boolean values) becomes 8 (cost A=cost E+50% (cost D+50%(cost B))). The reason why context sources B and D will count for only50% each time is due to the fact that in a random division 50% of thetime these context sources will be true (or false). This means that 100%of all cases context source proxy E′ will be requested, in 50% of allcases context source proxy D′, and in 25% of all cases context sourceproxy B′ will be requested which will lead to a lower total cost forexpression A.

An example of using this embodiment in a (mobile) telecommunicationnetwork is for a particular service, which e.g. only sets up a call whena number of requirements are met. The context source B may indicatewhether or not a subscriber is in a geographical location within 5 km ofa centre of a town. Context source D may indicate whether or not thisparticular subscriber is reachable by phone (i.e. mobile phone is on,and no ongoing call is present). Context source E may indicate whetheror not the particular subscriber has any appointments at that time inhis agenda (e.g. using an Outlook or Exchange program). The cost forobtaining this information may be considerably different.

In a naïve implementation, again, the rule interpreter 16 would firstevaluate context source proxy B′, if this data is ‘true’ would thenevaluate context source proxy D′, and if this data is ‘true’ would thenfinally evaluate context source proxy E′. In the implementationaccording to the present invention, the context source B, D, E with thelowest expression evaluation weight would be interrogated first, andonly if evaluating ‘true’ the context source B, D, E with the nextlowest weight would be interrogated, and so forth.

When the cost of obtaining the data from context sources B, D, and Ewould be the same, this implementation would provide the same cost asthe naïve solution. However, when the cost are different, the presentimplementation is much less costly.

E.g. when the cost of obtaining data from context sources (or proxies)B, D, E, are all 1 Euro (and assuming that the chance of true/false foreach of the context sources is 50%/50%), the total cost for evaluatingexpression A is:

a. naïve evaluation: 1+50%×(1+50%×1)=

1.75;

b. lowest weight first implementation: 1+50%×(1+50%×1)=

1.75.

When the cost for obtaining data from context source B is 4, fromcontext source D is 2, and from context source E is 1, then the totalcost for evaluating expression A is:

a. naïve evaluation: 4+50%×(2+50%×1)=

5.25;

b. lowest weight first implementation: 1+50%×(2+50%×4)=

3.00.

This example shows that the present implementation provides much lowercost for evaluating an expression, and thus ultimately lower cost forproviding this service in the telecommunications network.

In FIG. 4, a further example is shown using the same expressions A and Cas in the above examples, but with a different weight for each of thecontext sources B, D and E. In this example, cost(B)=4, cost(D)=10 andcost(E)=1. First, it is determined that the cost for the first elementof expression A (context source B) is equal to 4. Then the cost for thesecond element of expression A (sub-expression C) is determined, byevaluating the sub-expression C. The first element of sub-expression C(context source D) is determined to have a larger weight (10 versus 1)than the second element of sub-expression C (context source E), and thusfor evaluation of sub-expression C, context source E would have to beinterrogated first. This results in a determination of the cost forsub-expression C of 6 (i.e. cost E+50% of cost D, when assuming 50/50division of probabilities of context source E having a value true). As atotal, the cost for evaluating expression A amounts to 7. As the costfor the second element of expression A is larger than the cost for thefirst element of expression A (6>4), it is determined in this embodimentthat the first element (context source B) is to be interrogated first bythe service node 10. Only when this context source B evaluates as true,the next candidate is interrogated, which in this case is context sourceE. Only when also context source E is evaluated as true, the finalcontext source D will be interrogated.

Compared to the naïve solution (first B, then D, and finally E), thecost for evaluation of expression A is again lower:

a. naïve evaluation: 4+50%×(10+50%×1)=

9.25;

b. lowest weight first implementation: 4+50%×(1+50%×10)=

7.00.

In a further embodiment (absolute lowest weight), the construction ofthe expression and sub-expression(s) relating to the request of therequestor 11 is not accounted for. This embodiment only looks at theactual cost of obtaining data from a context source. In the aboveexample, this would result in first interrogating context source E(cost=1), then context source B (cost=4) and then context source D(cost=10). In the above given example, this would result in a total costfor evaluating expression A of 7 (cost E+50% cost D+25% cost B), whichis still lower than the naïve solution. This embodiment may be achievedwhen only the associated context source weight for obtaining data from acontext source B, D, E, is known. No further calculations are necessary(e.g. related to finding a cheapest path route when the evaluationinvolves complex intermediate expressions), which may require lessresources.

The expression and intermediate expressions as used in the aboveembodiments and descriptions are functions of boolean elements, having avalue of either true or false. In further embodiments, the elements mayalso comprise functions of numerical values obtained from contextsources B, D, E, e.g. to check whether a value of a context source iswithin a certain range. In actual network implementations, some of thecontext sources may respond with a value ‘unknown’ when a value is notavailable, e.g. in case a cell phone is turned off, or a GPS system doesnot deliver any information. In most applications this will result in anexception code, which may lead to unavailability of the service.

In a further embodiment, this possibility of a context source providinga value of unknown may be utilised to further improve the efficiency ofthe network or to reduce cost. In a first variant, it is taken intoaccount that next to the boolean values true and false, a context sourceB, D, E, may provide the value unknown as response to an interrogation.Depending on the (intermediate) expression to be evaluated, this mayresult in the finding that it is not necessary to interrogate anyfurther context sources for that request, thus reducing network datatraffic and interrogation cost.

In a first example, again the expressions A and C of FIG. 1 is used:intermediate expression C is true when both context sources D and Ereturn a value true, and expression A is true when both context source Band intermediate expression C return a value true. Suppose that contextsource E is unavailable, then the value of intermediate expression Cdepends on the value of context source D. After all, when context sourceD returns false, intermediate expression C will evaluate to false aswell, but if the value of context source D is true or unknown, the valueof intermediate expression C is unknown. If the value of intermediateexpression C is false, there is no need to continue asking for contextsource B's or E's values, which saves network resources. If the value ofintermediate expression C is unknown, context source B must beinterrogated.

The following summarizes this as follows

and E = true E = false E = unknown D = true C = true C = false C =unknown D = false C = false C = false C = false D = unknown C = unknownC = false C = unknown

The false cases in the unknown row and column (=bold face) are caughtautomatically through this invention, which is an extra optimization nottaken care of before.

In the next example, the result of this embodiment will be viewed incase of a boolean OR expression. Suppose that both expression A andexpression C are boolean or—expressions which return true when at leastone of the context sources or child expressions is true, then the samelogic applies. When context source D is unknown, then the service shouldstill ask context source E for its value. Suppose that context source Eis true, then it does not matter that context source D is unknown. Afterall, when one of the context sources is true, expression C results intrue as well. Then, the condition to have expression C return true issatisfied, and no more network resources need to be wasted. Thefollowing table gives an overview of the return values (the caseexplained above can be mapped on the bold entries):

or E = true E = false E = unknown D = true C = true C = true C = true D= false C = true C = false C = unknown D = unknown C = true C = unknownC = unknown

The true cases in the unknown row and column (=bold face) are caughtautomatically through this invention, which is an extra optimization nottaken care of before.

In a further variant, the context source B, D, E, is first interrogatedon availability of the respective value. Only when the context sourcedoes not return unknown will it be asked for its value, in the case ofbooleans, true or false, or in the case of integer range values, thevalue itself.

If the context source B, D, E, does return unknown, the latest valueretained from a previous request can be used as input for the expressionA or C.

In an example of this embodiment, for boolean values, each expressionand context source contains two options, Availability and Latest.Availability consists of two choices, available and true, or availableand false. When the context source value is unknown, the service canlook at the latest value retained (Latest), which can also be eithertrue or false. In this way, unknown values are no longer an issue.Unknown values are represented by the two cases in which theAvailability is false. The Availability depends on the Latest andAvailability values of the children elements (either expressions orcontext sources). Suppose expression C=A & B. Then the Availability ofexpression C depends on the Latest and Availability of elements A and Bas follows:

Availability(C)=(Availability(A) & Availability(B))

-   -   (Availability(A) & not Latest(A)))    -   (Availability(B) & not Latest(B)))

In words, expression C is known, if elements A and B are known (in whichcase the value of expression C is the value of the boolean AND (A & B),or if element A is available and false (in which case the value ofexpression C is false) or if element B is available and false (in whichcase the value of expression C is false).

Initially the Latest value can be set to either true or false. As soonas the context source or expression becomes known, the correct valuewill be set. As long as the Availability is false, the value of Latestshould not be used. In FIG. 5, a further possible embodiment is shown inthe network 1, in which the expression C (child expression) is shared byexpression A and expression X (parent expressions). Expression A is thesame as in the embodiment of FIG. 4, and also the associated contextsource weights are the same (cost(B)=4, cost(D)=10 and cost(E)=1). Whenthe request for evaluation of expression A and expression X are receivedat the same time from the respective associated requestors 11, theweight for evaluation of expression C may be shared between the twoparent expressions A and X. This may result in a different evaluationresult when determining which context source is to be interrogatedfirst: In the situation shown in FIG. 5 it is clear that the contextsource E has the be interrogated first (indicated by the arrow labeled‘Request’), as opposed to the situation described above, where contextsource B was interrogated first.

In FIG. 6, a further illustrative example of a possible networkarchitecture is shown for providing a service dependent on the data ofmore than one context source. In this example, there are two requestors11 a (Carol) and 11 b (Bob), which are connected to a GPRS/UMTS network1. The GPRS/UMTS network 1 is connected to a service node 10, which isarranged to provide an Optimal Communication Means (OCM) service, e.g.implemented as an application 17 in the service node 10. The servicenode 10 further comprises a Context Information Collector (CIC) 15,which is arranged to interface with a number of context sources.

Carol and Bob are subscribed to the ‘Optimal Communication MeansService’ and have defined a profile with the preferences they have uponoptimal communication means in specific situations. These preferencesare stored by the OCM service 17, e.g. in a database (not shown). Thismeans that the profile of Bob is used to decide upon the list ofcommunication means presented to Carol when he/she tries to communicatewith Bob.

Carol is in her car and is trying to reach Bob who is at work in ameeting. Bob has defined in his profile that he can be reached byInstant Messaging, SMS or voice mail while in a meeting. Carol hasdefined in her profile that she can only use voice communication whiledriving a car.

Carol selects Bob from the contact list. The OCM service 17 retrievesthe applicable context from both Carol and Bob through the CIC 15. TheOCM service 17 discovers that because of the context of Carol and Bobthere is no communication means available at this very moment andpresents this through a voice message to Carol (via GPRS/UMTS network1). The OCM service 17 also gives Carol the choice of contacting her assoon as Bob becomes available. Carol decides that she wants to contactBob through a voice call as soon as Bob becomes available.

As soon as Bob's meeting has ended his context changes in such a waythat he is reachable through voice. The OCM service 17 decides tocontact Carol and Carol can decide to call Bob. The following contextsources are applicable in this scenario:

Calendar info (Bob): To determine in-meeting for instance;Role (Carol): To determine in-car situation;Location (Carol): To determine speed.

The various method embodiments may also be used in this example, i.e. todetermine which context source is to be interrogated first based on thecost of evaluating the expression used by the OCM service 17.

The above described embodiments and examples are not meant to limit thescope of protection of the present application, which is defined by thefeatures as described in the appended claims.

1. A method for providing a service in a communication network, in whichthe service comprises evaluating a request comprising an expression, theexpression being a function of a plurality of elements, each elementrelating to data originating from one or more context sources availablein the communication network, each of the one or more context sourceshaving an associated context source weight for a query by the service,the method comprising: determining a context source from the one or morecontext sources for which evaluation of the expression has a lowestexpression evaluation weight, based on the associated context sourceweights, and interrogating the context source determined to have thelowest expression evaluation weight.
 2. The method according to claim 1,in which the expression comprises one or more intermediate expressions,the method further comprising iteratively determining the weight ofevaluating the one or more intermediate expressions, until all elementsrelate only to data originating from the one or more context sources. 3.The method according to claim 1, in which the method further comprisestaking into account the distribution of possible values of the dataoriginating from the one or more context sources when determining thelowest expression evaluation weight.
 4. The method according to claim 1,in which the context source having the lowest associated context sourceweight is determined to have the lowest expression evaluation weight. 5.The method according to claim 1, in which the associated context sourceweight is a function of network resource use, actual monetary cost, or acombination of network resource use and actual monetary cost.
 6. Themethod according to claim 1, in which the data of each one of theplurality of context sources is stored in an associated proxy serveraccessible for the service.
 7. The method according to claim 1 in whichthe expression is a boolean function, the data from each of the contextsources being true or false.
 8. The method according to claim 1, inwhich the data from the context sources is a numeric value, and theexpression comprises a function of the values of the context sources. 9.The method according to claim 7, in which the value of the data fromeach of the context sources is unknown.
 10. The method according toclaim 9, in which the method further comprises using a latest obtainedvalue for the respective context source value if the value is unknown.11. The method according to claim 1, in which a child expression is usedby multiple parent expressions, and the weight for evaluating the childexpression is shared between the multiple parent expressions when theassociated requests are received simultaneously.
 12. A service node fora communication network providing a service in the communicationnetwork, in which the service node is arranged for receiving andevaluating a request, the request comprising an expression being afunction of a plurality of elements, each element relating to dataoriginating from one or more context sources, the service node, inoperation, connected to the one or more context sources, in which theservice node is further arranged for: determining a context source fromthe one or more context sources for which evaluation of the expressionhas a lowest expression evaluation weight, based on the associatedcontext source weights, and interrogating the context source determinedto have the lowest expression evaluation weight.
 13. The service nodeaccording to claim 12, in which the service node comprises a ruleinterpreter for evaluating the expression.
 14. The service nodeaccording to claim 12, in which the service node comprises a contextinformation collector for interfacing with the one or more contextsources.
 15. The service node according to claim 14, in which thecontext information collector comprises a context source proxy for eachof the one or more context sources, for storing data associated witheach respective context source.
 16. The node according to claim 12, theexpression comprising one or more intermediate expressions, the nodefurther comprising means for iteratively determining the weight ofevaluating the one or more intermediate expressions, until all elementsrelate only to data originating from the one or more context sources.17. The node according to claim 12, the node further comprising meansfor taking into account the distribution of possible values of the dataoriginating from the one or more context sources when determining thelowest expression evaluation weight.
 18. The node according to claim 12,in which the context source having the lowest associated context sourceweight is determined to have the lowest expression evaluation weight.19. The node according to claim 12, in which the associated contextsource weight is a function of network resource use, actual monetarycost, or a combination of network resource use and actual monetary cost.20. The node according to claim 12, in which the data of each one of theplurality of context sources is stored in an associated proxy serveraccessible for the service.
 21. The node according to claim 12, in whichthe expression is a boolean function, the data from each of the contextsources being true or false.
 22. The node according to claim 12, inwhich the data from the context sources is a numeric value, and theexpression comprises a function of the values of the context sources.23. The node according to claim 21, in which the value of the data fromeach of the context sources is unknown.
 24. The node according to claim23, further comprising means for using a latest obtained value for therespective context source value if the value is unknown.